"""
案例
列表:[24 , 69 , 80 , 57 , 13] 有5个元素
使用冒泡排序法将其排成一个从小到大的有序列表
排序过了一遍了 ok   以后不会使用  直接使用sort   只是在面试的时候用 过
"""
arr = [24 , 69 , 80 , 57 , 13]
#如果只是完成排序功能,可以直接使用List的sort方法就能实现
# print("排序前".center(32 , "-"))
# print(arr)
# arr.sort()
# print("排序后".center(32 , "-"))
# print(arr)


#使用冒泡排序,对其进行从小到大进行排序
def bubble_sort(my_list):
    """
    功能:对传入的列表进行排序,排序顺序是从小到大
    :param my_list : 传入的列表
    :return 无
    冒泡排序的核心思想就是
    (1):循环比较两个相邻的元素，如果第二个大于第一个,就进行位置的调换,每一轮的比较都会到最后
        得到最大的一个数或者最小的一个数
    (2):进行 列表.length - 1 次循环  ， 每次循环都少一次小循环,因为每次循环都会确定一个最大或者
        最小的数，就不需要再进行比较了
    (3):这样的话,就能得到最终需要的排序数据了
    """
    #i变量来控制多少轮排序
    for i in  range(0 , len(my_list) - 1):
        #j变量控制比较的次数,同时可以作为比较元素的索引下标
        for j in range(0 , len(my_list) - 1 - i):
            #如果前面的元素 > 后面的元素,就交换
            if my_list[j] > my_list[j+1]:
                my_list[j] , my_list[j+1] = my_list[j+1] , my_list[j]

            # print("第一轮排序后的结果是 my_list", my_list)
            """
                           第一轮排序后的结果是 my_list [24, 69, 80, 57, 13]
                           第一轮排序后的结果是 my_list [24, 69, 80, 57, 13]
                           第一轮排序后的结果是 my_list [24, 69, 57, 80, 13]
                           第一轮排序后的结果是 my_list [24, 69, 57, 13, 80]
                           
                       """

        print("")

#列表类型在内存中是一个地址,如果内部元素发生了变化,对应的列表也就发生了变化
bubble_sort(arr)
print(arr)